package com.example.hao.greendao.pojo;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.NotNull;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Transient;
import org.greenrobot.greendao.annotation.Unique;
import org.greenrobot.greendao.annotation.Generated;

//    @Entity 表示这个实体类一会会在数据库中生成对应的表，
//    @Id 表示该字段是id，注意该字段的数据类型为包装类型Long
//    @Property 则表示该属性将作为表的一个字段，其中nameInDb看名字就知道这个属性在数据库中对应的数据名称。
//    @Transient 该注解表示这个属性将不会作为数据表中的一个字段。
//    @NotNull 表示该字段不可以为空
//    @Unique 表示该字段唯一。小伙伴们有兴趣可以自行研究。
@Entity
public class Student {

    @Unique
    @Id(autoincrement = true)
    private Long id;

    @NotNull
    @Property(nameInDb = "_name")
    private String name;

    @NotNull
    @Property(nameInDb = "_age")
    private int age;

    @Transient
    private String tag;

    @Generated(hash = 488068542)
    public Student(Long id, @NotNull String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", tag='" + tag + '\'' +
                '}';
    }

    @Generated(hash = 1556870573)
    public Student() {
    }

    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return this.age;
    }

    public void setAge(int age) {
        this.age = age;
    }


}
